In enterprise information systems (EIS), applications running on application servers interact with other applications running on the same or other application servers through a messaging system, typically the JAVA™ Messaging System (JMS). The JMS allows computers involved in different interactions and transactions to exchange messages to complete their respective tasks. JMS systems typically rely upon JMS providers, software developed by different companies that manage the communication sessions and message queues.
Each JMS provider typically has its own proprietary way of handling JMS tasks. When an application server, one of the users of the JMS, sends a message, it must send it in accordance with the protocols and conventions for whatever JMS provider the application is using. The JMS also must have the ability to interact with the application server according the application server's conventions and protocols.
Some relief from this issue is found in the JAVA™ Connector Architecture (JCA). Application servers typically use JCA to connect to the EIS. Even with the use of JCA, each messaging provider generally has its own connector, or resource adapter, based upon the provider's implementation of the JMS. Similarly, application servers typically have their own connectors. This results in each JMS provider having a proprietary connector, which leads to issues with interoperability and scalability as large systems may include many different JMS providers and different application server providers.